package com.wangshili.sys.service;

import java.util.List;

import org.springframework.transaction.annotation.Transactional;

import com.wangshili.common.bo.PageObject;
import com.wangshili.pojo.common.vo.CheckBox;
import com.wangshili.pojo.sys.entity.SysRole;
import com.wangshili.sys.vo.SysRoleMenu;

/**
 * 角色管理业务层接口
 * @author Administrator
 *
 */
public interface SysRoleService {
	/**
	 * 统计符合名字的数量
	 * @param name
	 * @return
	 */
	int countRoleByName( String name);

	/**
	 * 查询封装集合和分页信息
	 * @param name 用户名（可以为空，空就获取全部的）
	 * @param pageCurrent 客户端发来的当前页，可以通过当前页来计算
	 * @return PageObject对象，封装了角色list数据集合和分页数据
	 */
	PageObject<SysRole> listRoleObjects(
			String name,
			Integer pageCurrent);
	
	/**
	 * 插入一行角色信息,并将id关系插入role_menu表
	 * @param entity SysRole对象
	 * @return
	 */
	int insertRoleMenuObject(SysRole entity,Integer... menuIds);
	
	/**
	 * 根据id删除一行数据
	 * @param id
	 * @return
	 */
	int deleteRoleObjectById(Integer id);
	
	
	/**
	 * 根据id查找角色信息和关系表的id
	 * @param id
	 * @return
	 */
	SysRoleMenu findObjectById(Integer id);
	
	/**
	 * 更新数据
	 * @param entity
	 * @return
	 */
	int updateRoleObject(SysRole entity);
	
	/**
	 * 查询所有的角色信息，只返回id和name并用CheckBox封装
	 * @return
	 */
	List<CheckBox> findCheckBoxObjects();
}
